<?php
defined('EXEC') or die();
$transacao = 'cadastro_item';

if(!$auth->isRead($transacao)){
	Util::info(Config::AUTH_MESSAGE);
	return true;
}
//Importando a classes
Loader::import('com.atitudeweb.SQL');
Controller::addHead('fullcalendar', 'css');
Controller::addHead('fullcalendar.print', 'css');
Controller::addHead('jquery.blockUI', 'js');
Controller::addHead('globalize', 'js');
Controller::addHead('globalize.culture.pt-BR', 'js');
Controller::addHead('fullcalendar', 'js');
Controller::addHead('gcal', 'js');
$form 			= false;
$rowEdit 		= array();
$table 			= 'tethys.tb_itens';
$tableEdit		= 'tethys.tb_itens i left join tethys.tb_unidade_medida u on i.cd_unidade_principal=u.ci_unidade_medida left join tethys.tb_unidade_medida u1 on i.cd_unidade_estoque=u1.ci_unidade_medida left join tethys.tb_categoria_item cg on cg.ci_categoria_item=i.cd_categoria left join tethys.tb_grupo_item gi on i.cd_grupo=gi.ci_grupo_item left join tethys.tb_classe_item ci on i.cd_classe=ci.ci_classe_item
left join tethys.tb_imagem_itens img on img.cd_item= i.ci_item';
$tablepk 		= 'ci_item';
$fields 		= " i.ci_item as ci_item,i.ds_item as ds_item,i.fator_conversao AS fator_conversao,u.ci_unidade_medida AS ci_unidade_medida,u.ds_unidade_medida AS ds_unidade_medida,u1.ci_unidade_medida as ci_unidade_estoque,u1.ds_unidade_medida as ds_unidade_estoque, i.rua as rua, i.prateleira as prateleira, i.escaninho as escaninho,to_char(i.dt_validade,'dd/mm/yyyy') as dt_validade
,ci_categoria_item,ds_categoria_item,ci_grupo_item,ds_grupo_item,ci_classe_item,ds_classe_item,ds_codigo ";
$limitPagina 	= 10; //Registros por página
$faixa 			= 10; //Faixa de páginas que irão ser mostradas paginação (google)
$dif 			= 5; //A diferença que a faixa de páginas irão começar a caminhar (google)
$p 				= (@$_GET['p'] ? $_GET['p'] : 1);
$ci_item        =  @$_GET['form'];
$bool			= false;
if (@$_POST['upload']){

	//Criando a pasta caso não exita
	$folder = 'assets/itens';
	if(!is_dir($folder)){
		Util::growl('Erro', 'Pasta não foi encontrada! Contate o administrador do sistema.', 'error');
	}else{
		//Gera a extensão do arquivo
		$temp = @explode('.', $_FILES['nm_imagem']['name']);
		$ds_ext = strtolower($temp[count($temp) - 1]);
		array_pop($temp);
		$nm_file = join(".", $temp);
		//Extensões conhecidas pelo sistema
		$extensao = array( 0 => 'gif' ,1 => 'jpg',2 => 'png', 3 => 'jpeg', 4 => 'tif', 5 => 'bmp', 6 => 'no');
		$j = 0;
		while ($j <= count($extensao)){
			if ($ds_ext == $extensao[$j])
			$bool_t = true;
			$j++;
		}
		//Adquirir um novo código para o filé
		$query = "SELECT nextval('tethys.tb_imagem_itens_ci_imagem_item_seq') as ci_file";
		$rs = Connection::query($query);
		$row = $rs->fetch();
		$ci_file = $row['ci_file'];

		if (!$bool_t){
			Util::growl('Erro', 'Por favor, anexar somente imagem.', 'error');
		}else{
			$name = md5(uniqid(rand(),true));
			$largura = 110;
				
			if ($_FILES['nm_imagem']['type']=="image/jpeg"){
				$img = imagecreatefromjpeg($_FILES['nm_imagem']['tmp_name']);
			}else if ($_FILES['nm_imagem']['type']=="image/gif"){
				$img = imagecreatefromgif($_FILES['nm_imagem']['tmp_name']);
			}else if ($_FILES['nm_imagem']['type']=="image/png"){
				$img = imagecreatefrompng($_FILES['nm_imagem']['tmp_name']);
			}
				
			$x   = imagesx($img);
			$y   = imagesy($img);
			$altura = ($largura * $y)/$x;
				
			if($altura > 146)
			$altura = 146;
				
			$nova = imagecreatetruecolor($largura, $altura);
			imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
				
			if ($_FILES['nm_imagem']['type']=="image/jpeg"){
				$file="$folder/$name".".jpg";
				imagejpeg($nova, $file);
			}else if ($_FILES['nm_imagem']['type']=="image/gif"){
				$file="$folder/$name".".gif";
				imagejpeg($nova, $file);
			}else if ($_FILES['nm_imagem']['type']=="image/png"){
				$file="$folder/$name".".png";
				imagejpeg($nova, $file);
			}
			imagedestroy($img);
			imagedestroy($nova);
				
			//$file = $folder.'/'.$cd_cliente.'.'.$ds_ext;
			//Pesquisa qual o hash do cliente.
				
			$sql = "SELECT cast(1 as boolean) as bool, ds_hash from tethys.tb_imagem_itens where cd_item = $ci_item;";
			$rs = Connection::query($sql);
			$row = $rs->fetch();
			$bool = $row['bool'];
			$ds_hash = $row['ds_hash'];
				
				
			if($bool){
				if(file_exists($ds_hash.'.'.$ds_ext))
				unlink($ds_hash.'.'.$ds_ext);

				$sql = "update tethys.tb_imagem_itens set
				ci_imagem_item = $ci_file, nm_imagem = '".$nm_file."', ds_hash = '".$name."', ds_ext = '".$ds_ext."', dt_data =  now()
				where cd_item = $ci_item;";
			}else{
				$sql = "insert into tethys.tb_imagem_itens (ci_imagem_item, cd_item, nm_imagem, ds_hash, ds_ext, dt_data)
				values(".$ci_file.", ".$ci_item.",'".$nm_file."','".$name."', '".$ds_ext."', now());";
			}
			//Alteração ou inclusão de um registro
			if(execute($sql)){
				Controller::setInfo('Imagem de Item', 'Salvo com sucesso!');
				Controller::redirect(Util::setLink(array('form=null', 'db=null')));
			}
			else{				
				Controller::setInfo('Imagem de Item', 'Ocorreu um erro ao tentar enviar o arquivo para o sistema. Por favor contate o administrador.', 'danger', '', 3500);
			}

		}
	}
}else{
	//Exclusão de vários ou um registro
	if(isset($_POST['checkdel'])){
		if($auth->isDelete($transacao)){
			if(SQL::remove($table, $tablepk, $_POST['checkdel'])){
				Util::notice('Cadastro de Item', 'Excluído com sucesso!', 'success', 'info-circle', 3500);
			}
			else{
				Util::notice('Cadastro de Item','Ocorreu um erro ao tentar enviar o arquivo para o sistem. Por favor contate o administrador.', 'danger', '', 3500);
			}
		}
		else{
			Util::info(Config::AUTH_MESSAGE);
		}
	}
	//Alteração ou inclusÃ£o de um registro
	if(isset($_GET['db']) && isset($_GET['form'])){
		$cd_unidade_principal = $_POST['cd_unidade_principal'];
		$fator_conversao = 1;
		$cd_unidade_estoque = $_POST['cd_unidade_principal'];		
		$ds_item = $_POST['ds_item'];		
		$cd_categoria = $_POST['cd_categoria'];
		$ds_codigo = $_POST['ds_codigo'];
		$qtd_iten_anexo = (!empty($_POST['qtd_iten_anexo']))?$_POST['qtd_iten_anexo']:0;
			
		if($_GET['db'] == 1 && $_GET['form'] == 0){
			$sql="insert into tethys.tb_itens(cd_unidade_principal,fator_conversao,cd_unidade_estoque,ds_item,cd_categoria,qtd_iten_anexo,ds_codigo) values (
						$cd_unidade_principal,
						$fator_conversao,
						$cd_unidade_principal,						
						UPPER('$ds_item'),						
						$cd_categoria,
						$qtd_iten_anexo,
						UPPER('$ds_codigo')
					)";
		}
		elseif($_GET['db'] == 1 && $_GET['form'] > 0){
			$sql=" update $table set
				cd_unidade_principal=$cd_unidade_principal,
				fator_conversao=$fator_conversao,
				cd_unidade_estoque=$cd_unidade_estoque,				
				ds_item='$ds_item',				
				cd_categoria=$cd_categoria,
				ds_codigo='$ds_codigo',
				qtd_iten_anexo=$qtd_iten_anexo
			where $tablepk=".$_GET['form'];
		}
	
		if(execute($sql)){
			Controller::setInfo('Itens', 'Salvo com sucesso!', 'success', 'info-circle', 3500);
			Controller::redirect(Util::setLink(array('form=null', 'db=null')));
		}
		else{
			Controller::setInfo('Itens', 'Ocorreu um erro ao tentar enviar o arquivo para o sistem. Por favor contate o administrador.', 'danger', '', 3500);
		}

	}
}
//Mudança do formul,ário para adição ou alteração de registro
if(isset($_GET['form'])){
	if($_GET['form'] == 0){
		$btFormLabel = 'Adicionar';
	}
	else{
		$btFormLabel = 'Salvar';
		$rowEdit =query("select * from $tableEdit where $tablepk = ".$_GET['form'])->fetch();
	}
	$form = true;
}

//Consulta no banco e mecânica de paginação
if(isset($_POST['search1']) || !$form){
	if(isset($_POST['search1'])){
		$term = addslashes($_POST['search1']);
		$where =  " where ( u.abv_unidade ilike '%{$term}%' or i.ds_item ilike '%{$term}%' ) ";
	}else{
		$where =" where 1=1 ";
	}	
	
	$sql=" select $fields from $tableEdit $where order by $tablepk asc limit {$limitPagina} offset ".(($p - 1) * $limitPagina);
	$sqlc=" select count(*) as num from $tableEdit $where ";
	$query = query($sql);
	$rowNum = query($sqlc)->fetch();
	$registros = $rowNum['num'];
	$paginacao = Util::pagination($registros, 4);
}

?>
<h3>
	<i class="glyphicon glyphicon-user"></i> Cadastro de Itens -
	<?php echo (!isset($_GET['form']) ? 'Pesquisa' : (@$_GET['form'] > 0 ? 'Edição' : 'Cadastro')); ?>
</h3>
	<?php if(!isset($_GET['form'])){ ?>
<a href="<?php echo Util::setLink(array('form=0')); ?>"
	class="command-page"><span class="fa fa-plus-square"></span> Novo</a>
	<?php } else{ ?>
<a href="#" class="command-page"
	onclick="window.location='?page=estoque/cadastro_item';"><span
	class="fa fa-reply"></span> Voltar</a>
<?php } ?>
<div class="panel panel-default">
	<div class="panel-body">
		<div id="alerts"></div>
		<?php if(!isset($_GET['form'])){ ?>
			<form action="<?php echo Util::setLink(array('p=null')); ?>"
				method="post" class="form">
				<div class="row">
					<div class="col-md-4">
						<div class="form-group">
							<label class="control-label">Descrição:</label>
								<input type="text" name="search1" id="search1"
									value="<?php echo @$_POST['search1']; ?>"
									class="form-control" />&nbsp;								
						</div>
					</div>
					<div class="col-md-2">
						<div class="form-group">
							<button id="btSearch" class="btn btn-default btn-adjust">
								<span class="fa fa-search"></span>Consultar
							</button>
						</div>
					</div>
				</div>
			</form>
		<?php } ?>	
	<?php if(!isset($_GET['form'])){ ?>
	<!-- LISTAGEM DOS REGISTROS -->
		<form action="<?php echo Util::setLink(array('del='.$query->rowCount())) ?>" method="post" id="formSearch">
		<div class="table-responsive">
				<table
					class="table table-striped table-bordered table-hover table-condensed">
					<thead>
						<tr class="ui-widget-header">
							<th width="25" class="check"><input type="checkbox"
								id="btCheckAll" /></th>
							<th>ID</th>
							<th>Descricao</th>
							<th>Categoria</th>
							<th></th>
						</tr>
					</thead>
			<tbody>
			<?php
			$count = 0;
			while($rowPesq = $query->fetch()){
				$campo1 = $rowPesq['ds_categoria_item'];
				echo '<tr>
		            	<td class="check"><input type="checkbox" class="btCheck" name="checkdel[]" value="'.$rowPesq[$tablepk].'"/></td>
		                <td>'.$rowPesq['ci_item'].'</td>
		                <td>'.$rowPesq['ds_item'].'</td>		           
		                <td>'.$campo1.'</td>
		               <td width="30" align="center">
					      	<button type="button" onclick="window.location=\''.Util::setLink(array('form='.$rowPesq['ci_item'], 'del=null')).'\';" class="btn btn-default btn-xs" title="Editar" data-toggle="tooltip">
						    	<span class="fa fa-pencil"></span>
						    </button>
					   </td>
		        	</tr>';
				$count++;
			}
			?>
			</tbody>
		</table>
	</form>
	<?php echo $paginacao; ?>
	<?php } else{ ?>
	<!-- FORMULÁRIO DE CADASTRO -->	
	<form action="<?php echo Util::setLink(array('db=1')) ?>" class="form"
			method="post" id="formInsertEdit" onsubmit="return test();">
				
				<div class="row">
					<div class="col-md-4">
						<div class="form-group">														
								<?php
								if($bool){
									$sql = "SELECT cast(1 as boolean) as bool, ds_hash, ds_ext from  tethys.tb_imagem_itens where cd_item = ".$rowEdit['ci_item'].";";
									$rs = Connection::query($sql);
									$row = $rs->fetch();
									$bool = $row['bool'];
									$ds_hash = $row['ds_hash'];
									$ds_ext = $row['ds_ext'];								
									echo '<img src="assets/itens/'.$ds_hash.'.'.$ds_ext.'">';
								}else{
									echo '<button id=';echo 'btUpload';
									 echo ' type="button" class="btn btn-default">
											<i class="fa fa-camera-retro fa-3x"></i> Adicionar Foto
										</button>';
								}
								?>																
						</div>
					</div>
				</div>

				<div class="row">
						<div class="col-md-1">
							<div class="form-group">
								<label class="control-label">Item:<span class="text-danger">*</span> </label> 
								<input type="text" id="ci_item" name="ci_item"
										value="<?php if ($ci_item==''){ echo $rowEdit['ci_item']; }else{ echo $ci_item; }?>"
										class="form-control" size="6" readonly />
							</div>
						</div>
						<div class="col-md-1">
							<div class="form-group">
								<label class="control-label">CÓDIGO:<span class="text-danger">*</span> </label> 
								<input type="text" id="ds_codigo" name="ds_codigo" value="<?php echo trim(@$rowEdit['ds_codigo']); ?>"
									   class="form-control" maxlength="40" />
							</div>
						</div>				   
						<div class="col-md-8">
							<div class="form-group">
								<label class="control-label">Descri&ccedil;&atilde;o:<span class="text-danger">*</span> </label>
								<input type="text" id="ds_item" name="ds_item" value="<?php echo trim(@$rowEdit['ds_item']); ?>"
										class="form-control" size="70" />
							</div>
						</div>	
						<div class="col-md-3">
							<div class="form-group">
								<label class="control-label">Nr.Itens Agregados:<span class="text-danger">*</span> </label>
								<input type="text" id="qtd_iten_anexo" name="qtd_iten_anexo" value="<?php echo trim(@$rowEdit['qtd_iten_anexo']); ?>"
									   class="form-control number" size="3" maxlength="3" />
							</div>
						</div>			   
						<div class="col-md-2">
							<div class="form-group">
								<label class="control-label">TAMANHO:<span class="text-danger">*</span> </label>
								<select name="cd_unidade_principal" id="cd_unidade_principal"
										class="form-control">
											<?php if($_GET['form'] == 0){
					
												$sql="select ci_unidade_medida, abv_unidade from tethys.tb_unidade_medida order by ds_unidade_medida";
												echo '<option value="0" >Selecione uma unidade de medida</option>';
												$rs = Connection::query($sql);
												while($row = $rs->fetch()){
													echo '<option value="'.@$row['ci_unidade_medida'].'" >'.$row['abv_unidade'].'</option>';
												}
											}else{ 
													echo '<option value="'.@$rowEdit['ci_unidade_medida'].'" >'.@$rowEdit['abv_unidade'].'</option>';
					  						}?>
								</select>
							</div>
						</div>			   
						<div class="col-md-2">
							<div class="form-group">
								<label class="control-label">CATEGORIAS:<span class="text-danger">*</span> </label>
								<select name="cd_categoria" id="cd_categoria"
										class="form-control">
										<?php if($_GET['form'] == 0){
				
											$sql="select ci_categoria_item, ds_categoria_item from tethys.tb_categoria_item order by ds_categoria_item";
											echo '<option value="0" >Selecione uma categoria</option>';
											$rs = Connection::query($sql);
											while($row = $rs->fetch()){
												echo '<option value="'.@$row['ci_categoria_item'].'" >'.$row['ds_categoria_item'].'</option>';
											}
									  }else{ 
									  		echo '<option value="'.@$rowEdit['ci_categoria_item'].'" >'.@$rowEdit['ds_categoria_item'].'</option>';
									  }?>
								</select>
							</div>
						</div>			   
									   
				</div>
				<br clear="all">
				<button id="btInsertEdit" class="btn btn-default" type="submit">
					<span class="fa fa-floppy-o"></span> Salvar
				</button>
		</form>
<?php } ?>
	<!--  Formulário de Uplaod -->
	<div class="modal fade bs-example-modal-lg" id="dialog_upload" title="Imagem do Item">
		<form method="post" enctype="multipart/form-data">
			<table id="cadastro_1" border="0" align="center" width="14%">
				<tr>
					<td align="center" colspan="2">
						<fieldset id="img_cliente"
							class="text ui-widget-content ui-corner-all">
							<legend class="img_text">Foto</legend>
							<img id="img_client" src="assets/dropbox.jpg">
						</fieldset>
					</td>
				</tr>
				<tr>
					<td align="center">
						<div class="clienteUpload">
							<label class="btUpload"> <span>Adicionar</span> <input
								id="nm_imagem" type="file" name="nm_imagem" /> </label>
						</div>
					</td>
					<td align="center"><button id="enviarUpload" name="enviarUpload"
							type="submit">ANEXAR</button>
					
					<td>
				
				</tr>
			</table>
			<input type="hidden" name="ci_item"
				value="<?php if ($ci_item==''){ echo $rowEdit['ci_item']; }else{ echo $ci_item; }?>" />
			<input type="hidden" name="upload" value="1" />
		</form>
	</div>
	

<script type="text/javascript">
$(function() {
	$("#btUpload").click(function(){
		$( "#dialog_upload" ).modal('show');
	});
	
	$("#ds_codigo").keyup(function(){
		$(this).val($(this).val().toUpperCase());
	    var varString = $(this).val();
	    var stringAcentos = ('àâêôûãõáéíóúçüÀÂÊÔÛÃÕÁÉÍÓÚÇÜ');
	    var stringSemAcento = ('aaeouaoaeioucuAAEOUAOAEIOUCU');
	    
	    var i = new Number();
	    var j = new Number();
	    var cString = new String();
	    var varRes = '';
	    
	    for (i = 0; i < varString.length; i++) {
	        cString = varString.substring(i, i + 1);
	        for (j = 0; j < stringAcentos.length; j++) {
	            if (stringAcentos.substring(j, j + 1) == cString){
	                cString = stringSemAcento.substring(j, j + 1);
	            }
	        }
	        varRes += cString;        
	    }
	    varRes = varRes.replace( /\s/g, '' );
	});

		$("#ds_item").keyup(function(){
		$(this).val($(this).val().toUpperCase());
	    var varString = $(this).val();
	    var stringAcentos = ('àâêôûãõáéíóúçüÀÂÊÔÛÃÕÁÉÍÓÚÇÜ');
	    var stringSemAcento = ('aaeouaoaeioucuAAEOUAOAEIOUCU');
	    
	    var i = new Number();
	    var j = new Number();
	    var cString = new String();
	    var varRes = '';
	    
	    for (i = 0; i < varString.length; i++) {
	        cString = varString.substring(i, i + 1);
	        for (j = 0; j < stringAcentos.length; j++) {
	            if (stringAcentos.substring(j, j + 1) == cString){
	                cString = stringSemAcento.substring(j, j + 1);
	            }
	        }
	        varRes += cString;        
	    }
	    varRes = varRes.replace( /\s/g, '' );
	});

	$("#btUpload").button();
	$("#upload").button();

	$(document).ready(function() {
	    $("#fator_conversao").keypress(verificaNumero);
	 });
	$(function(){
				    /* Quando houver digitação em componentes com a classe "number" */
				    $(".number").keydown(function(event){
					    if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || (event.keyCode == 65 && event.ctrlKey === true) || (event.keyCode >= 35 && event.keyCode <= 39)){
				            return;
				        }
				        else
				        {
					       if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 ))
				            {
					            event.preventDefault();
				            }  
				        }
				    });
		});

});

function test(){	
	var valid = true;
	var ds_codigo = $("#ds_codigo").val();
	var ds_item = $("#ds_item").val();
	var cd_unidade_principal = $("#cd_unidade_principal").val();
	
	var cd_categoria = $("#cd_categoria").val();
	var cd_grupo = $("#cd_grupo").val();
	var cd_classe = $("#cd_classe").val();
	var rua = $("#rua").val();
	var prateleira = $("#prateleira").val();
	var escaninho = $("#escaninho").val();
	
	$("#formInsertEdit").find("input,select,textarea").each(function(index){
		$(this).parent().removeClass("has-error");						
	});
		
	if (ds_codigo == '') {
		updateTips($('#ds_codigo'), 'O Campo Código deve ser preenchido');
		valid = false;
	}else if (ds_item == '') {
		updateTips($('#ds_item'), 'O Campo Descrição deve ser preenchido');
		valid = false;
	}else if(cd_unidade_principal == 0){
		updateTips($('#cd_unidade_principal'), 'O Campo Tamanho deve ser preenchido');
		valid = false;
	}else if(cd_categoria == 0){
		updateTips($('#cd_categoria'), 'O Campo Categoria deve ser preenchido');
		valid = false;
	}else if(cd_grupo == 0){
		updateTips($('#cd_grupo'), 'O Campo Grupo deve ser preenchido');
		valid = false;
	}else if(cd_classe == 0){
		updateTips($('#cd_classe'), 'O Campo Classe deve ser preenchido');
		valid = false;
	}else if(rua == ''){
		updateTips($('#rua'),'O Campo Rua deve ser preenchido');
		valid = false;
	}else if(prateleira == ''){
		updateTips($('#prateleira'),'O Campo Prateleira deve ser preenchido');
		valid = false;
	}else if(escaninho == ''){
		updateTips($('#escaninho'),'O Campo Escaninho deve ser preenchido');
		valid = false;			
	}else{
		valid = valid && checkLength('nm_cliente', 'Cliente', 2);
	}
	return valid;
	
}	

function mostra_elemento(obj){
	var variavel = obj.value;
	
	if (variavel=='N'){
		document.getElementById('ds_dt_validade').style.display= "none";
		document.getElementById('vl_dt_validade').style.display= "none";
	}else{
		document.getElementById('ds_dt_validade').style.display= "";
		document.getElementById('vl_dt_validade').style.display= "";
	}
	return;

}	

function verificaNumero(e) {
	if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
		e.value="";
	  return false;
	}
}
</script>
